let User = require('../models/user.js');

exports.test = function (req, res) {
	res.json({
		user: 'test'
	})
}

// 注册
exports.signUp = function (req, res) {
	let _user = req.body;
	console.log(_user);
	User.findOne({username: _user.username}, function (err, user) {
		if (err) {
			return res.status(500).json({msg: '注册失败，请重试'}, err);
		}
		if (user) {
			return res.status(403).json({msg: '用户名重复，请重新注册', err});
		} else {
			user = new User(_user);
			user.save(function (err, user) {
				if (err) {
					res.status(500).json({msg: '注册失败，请重试'}, err);
				}
				res.json({
					userId: user._id,
					username: user.username,
					msg: '注册成功'
				})
			})
		}
	})
}

// 登录
exports.signIn = function (req, res) {
	let _user = req.body;
	User.findOne({username: _user.username}, function (err, user) {
		if (err) {
			return res.status(500).json({msg: '登录失败，请重试', err});
		}
		if (!user) {
			return res.status(401).json({msg: '登录失败，用户名不存在', err});
		}
		user.comparePassword(_user.password, function(err, isMatch) {
			if (err) {
				return res.status(500).json({msg: '登录失败，请重试', err});
			}
			if (isMatch) {
				res.json({
					userId: user._id,
					user: user.username,
					msg: '登录成功'
				})
			} else {
				return res.status(401).json({msg: '密码错误，请核对后重试'});
			}
		})
	})
}

// 登出
exports.logout = function (req, res) {
	res.json({ msg: '登出成功，Maxwell 会想念你的' })
}

// 通过 id 获取用户信息
exports.getById = function (req, res) {
	User.findOne({_id: req.params.userId}, function(err, user) {
		if (err) {
			return res.status(500).json({msg: '查找用户失败', err});
		}
		if (user) {
			return res.json({
				msg: '查找用户成功',
				data: user
			})
		}
	})
}
